package com.ziyun.pop.modules.order.vo;

import com.ziyun.pop.common.e.order.OrderInfoStatusEnum;
import com.ziyun.pop.common.utils.EnumUtil;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 工厂订单
 * @author gaosheng
 * @date 2018-09-26 17:59
 */
@Getter
@Setter
public class FactoryOrderVo {

    private static final long serialVersionUID = 1L;

    /**
     * 订单号
     */
    private String orderId;
    /**
     * 父订单号
     */
    private Long parentOrderId;
    /**
     * 会员用户名
     */
    private String memberName;
    /**
     * 手机
     */
    private String mobile;
    /**
     * 联系人
     */
    private String nickname;
    /**
     * 会员ID
     */
    private Integer memberId;
    /**
     * 商品总值
     */
    private BigDecimal totalAmount;
    /**
     * 配送费用
     */
    private BigDecimal costFreight;
    /**
     * 调价
     */
    private BigDecimal discount;
    /**
     * 商品促销优惠
     */
    private BigDecimal pmtGoods;
    /**
     * 优惠卷优惠
     */
    private BigDecimal pmtOrder;
    /**
     * 随机立减
     */
    private BigDecimal pmtRandom;
    /**
     * 订单应付金额
     */
    private BigDecimal payableAmount;
    /**
     * 订单已支付金额
     */
    private BigDecimal payed;
    /**
     * 发票类型
     */
    private String taxType;
    /**
     * 发票id
     */
    private Integer taxId;
    /**
     * 发票内容
     */
    private String taxContent;
    /**
     * 发票抬头
     */
    private String taxCompany;
    /**
     * 单位名称
     */
    private String taxName;
    /**
     * 纳税人识别码
     */
    private String taxIdentification;
    /**
     * 注册地址
     */
    private String taxAddr;
    /**
     * 注册电话
     */
    private String taxTel;
    /**
     * 开户行银行
     */
    private String taxAccountName;
    /**
     * 银行账户
     */
    private String taxNumber;
    /**
     * 绑定供应商ID
     */
    private Integer supplierId;
    /**
     * 供应商名称
     */
    private String supplierName;
    /**
     * 工厂ID
     */
    private Integer factoryId;
    /**
     * 订单总重量
     */
    private BigDecimal weight;
    /**
     * 订单获得积分
     */
    private BigDecimal scoreG;
    /**
     * 订单附言
     */
    private String memo;
    /**
     * 创建时间
     */
    private Date createtime;
    /**
     * 收货人
     */
    private String shipName;
    /**
     * 收货地址
     */
    private String shipAddr;
    /**
     * 收货地区
     */
    private String shipArea;
    /**
     * 收货人邮编
     */
    private String shipZip;
    /**
     * 收货电话
     */
    private String shipTel;
    /**
     * 收货人email
     */
    private String shipEmail;
    /**
     * 配送时间
     */
    private String shipTime;
    /**
     * 收货人手机
     */
    private String shipMobile;
    /**
     * 是否自提
     */
    private Boolean pickUp;
    /**
     * 订单状态:active:活动订单,dead:已作废,finish:已完成,unactive:未激活,cancel:已取消
     */
    private String status;

    private String statusText;

    public String getStatusText(){
        return EnumUtil.getEnumByCode(OrderInfoStatusEnum.class, this.status).toDescribe();
    }

    /**
     *  发货状态
     */
    private String shipStatus;
    /**
     * 平台来源
     */
    private String source;
    /**
     * 支付方式
     */
    private String payment;
    /**
     * 支付时间
     */
    private Date paymentTime;
    /**
     * 商品
     */
    private String goodsName;
    /**
     * 审核人
     */
    private String auditName;
    /**
     * 审核时间
     */
    private Date auditTime;
    /**
     * 付款状态
     */
    private String payStatus;
    /**
     * 生产状态
     */
    private Integer productionStatus;
    /**
     * 原始订单号
     */
    private Long originalOrderId;
    /**
     * 跟单员ID
     */
    private Integer pmcId;
    /**
     * 客服ID
     */
    private Integer csId;
    /**
     * 用友销售单号
     */
    private String yonyouOrderNo;
    /**
     *外协跟单员
     */
    private String pmcName;
    /**
     * 分配人
     */
    private String allotName;
    /**
     * 收货状态：0:未收货，1:已收货
     */
    private Integer receivedStatus;
    /**
     *  第三方类型:0.中浩紫云;1.自营门店；2.小B;3.工厂
     */
    private Integer thirdMerchantType;
    /**
     * 是否分配订单
     */
    private boolean isAllocated;

}
